home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / New System Software Extensions / OpenDoc A6 / SOM / OpenDoc and SOM / CPlusPlus / BaseSess.xh < prev    next >
Encoding:
Text File  |  1994-04-19  |  3.7 KB  |  164 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: Locrian:WWDCSun:CPlusPlus:BaseSess.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: somc/smemit.c
  7.  *     SOM Emitter emitxh.dll: somc/smmain.c
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Theory of Operation
  13.  * 
  14.  * 
  15.  *  Classes defined in this interface
  16.  * 
  17.  */
  18.  
  19.  
  20. #ifndef SOM_ODBaseSession_xh
  21. #define SOM_ODBaseSession_xh
  22.  
  23. class ODBaseSession;
  24.  
  25. #define ODBaseSession_MajorVersion 0
  26. #define ODBaseSession_MinorVersion 0
  27.  
  28. /* C++ som defs */
  29. #include <somcls.xh>
  30.  
  31. /* Include C++ parent defs */
  32. #ifndef SOM_ODObject_xh
  33. #include <ODObject.xh>
  34. #endif
  35.  
  36. #ifndef ODBaseSession_API
  37. #define ODBaseSession_API
  38. /*
  39.  * -- The Class API
  40.  */
  41.  
  42. /*
  43.  * Start of user-defined types:
  44.  */
  45. class ODExtension;
  46. class ODStorageSystem;
  47. class ODNameSpaceManager;
  48.  
  49. /*
  50.  * End of user-defined types.
  51.  */
  52.  
  53. #if applec ^ PRAGMA_LIB_EXPORT
  54. #pragma lib_export on
  55. #endif
  56.  
  57.  
  58. /* A procedure to create the ODBaseSession Class */
  59. SOMEXTERN SOMClass * SOMLINK ODBaseSessionNewClass(
  60.         integer4 majorVersion,
  61.         integer4 minorVersion);
  62.  
  63. /* The API to the ODBaseSession class object, and the methods it introduces. */
  64. typedef struct ODBaseSessionClassDataStructure {
  65.     SOMClass *classObject;
  66.     somMToken InitSession;
  67.     somMToken GetStorageSystem;
  68.     somMToken Close;
  69.     somMToken GetNameSpaceManager;
  70.     somMToken GetBinding;
  71. } ODBaseSessionClassDataStructure;
  72. #ifdef SOM_NO_DATA_EXPORTS
  73.    SOMEXTERN ODBaseSessionClassDataStructure * ODBaseSessionGetClassData ( void );
  74. #   undef ODBaseSessionClassData
  75. #   define ODBaseSessionClassData (*ODBaseSessionGetClassData())
  76. #else
  77.    SOMEXTERN ODBaseSessionClassDataStructure ODBaseSessionClassData;
  78. #endif /* SOM_NO_DATA_EXPORTS */
  79.  
  80. #if applec ^ PRAGMA_LIB_EXPORT
  81. #pragma lib_export off
  82. #endif
  83.  
  84. #define _ODBaseSession ODBaseSessionClassData.classObject
  85.  
  86. /* The API to parentMtabs for ODBaseSession, and the instance data it introduces. */
  87. SOMEXTERN struct ODBaseSessionCClassDataStructure {
  88.     somMethodTabs parentMtab;
  89.     somDToken instanceDataToken;
  90. } ODBaseSessionCClassData;
  91.  
  92. /*
  93.  * -- Typedefs for Procedures that support Methods introduced by ODBaseSession
  94.  */
  95. SOMEXTERN {
  96. typedef ODStorageSystem*   (* SOMLINK somTD_ODBaseSession_GetStorageSystem)(ODBaseSession *somSelf, Environment *ev);
  97. typedef void   (* SOMLINK somTD_ODBaseSession_Close)(ODBaseSession *somSelf, Environment *ev);
  98. typedef ODNameSpaceManager*   (* SOMLINK somTD_ODBaseSession_GetNameSpaceManager)(ODBaseSession *somSelf, Environment *ev);
  99. }
  100.  
  101. #endif /* ODBaseSession_API */
  102.  
  103.  
  104. /*
  105.  * -- Method Tokens are Thunks
  106.  */
  107. #undef somresolve_
  108. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  109.  
  110. /*
  111.  * -- The C++ Wrapper Class for ODBaseSession
  112.  */
  113. class ODBaseSession : public ODObject
  114. {
  115. public:
  116.  
  117. void *operator new(size_t size)
  118. {
  119.    SOM_IgnoreWarning(size);
  120.    if (!ODBaseSessionClassData.classObject) 
  121.       ODBaseSessionNewClass(ODBaseSession_MajorVersion,ODBaseSession_MinorVersion);
  122.    return (void *)
  123.       ((somTD_SOMClass_somNew)
  124.       somresolve_((SOMObject *)((void*)(ODBaseSessionClassData.classObject)),
  125.                  SOMClassClassData.somNew))
  126.          ((SOMClass *)((void*)(ODBaseSessionClassData.classObject)));
  127. }
  128.  
  129. void operator delete(void * obj)
  130. {
  131.    ((SOMObject *)obj)->somFree();
  132. }
  133.  
  134. /* public method: GetStorageSystem */
  135. ODStorageSystem*   GetStorageSystem(Environment *ev)
  136. {
  137.    return SOM_Resolve(this,ODBaseSession,GetStorageSystem)
  138.     (this,ev);
  139. }
  140.  
  141.  
  142. /* public method: Close */
  143. void   Close(Environment *ev)
  144. {
  145.    SOM_Resolve(this,ODBaseSession,Close)
  146.     (this,ev);
  147. }
  148.  
  149.  
  150. /* public method: GetNameSpaceManager */
  151. ODNameSpaceManager*   GetNameSpaceManager(Environment *ev)
  152. {
  153.    return SOM_Resolve(this,ODBaseSession,GetNameSpaceManager)
  154.     (this,ev);
  155. }
  156.  
  157.  
  158.  
  159. };   /* ODBaseSession */
  160.  
  161.  
  162.  
  163. #endif       /* SOM_ODBaseSession_xh */
  164.